Шаг 20 - Приватные конструкторы.

Загрузить проект

Суть в том, что к данному конструктору нельзя обратиться из вне. Зачем? Ну например отключить конструктор по умолчанию, как результат объект можно будет создать только передав параметры. Смотрим.

Visual C++.Net
Visual Basic.Net
CSharp

Visual C++.Net

Ведет себя интереснее всех. Он не выдает ошибку на попытку создания объекта с приватным конструктором, только предупреждение. Ошибку Вы получите если где то в программе попытаетесь воспользоваться этим объектом.

#using <mscorlib.dll>

using namespace System;

class  CMyClass
{

private:
	CMyClass();
public:
	CMyClass(int ii);	
	
	int i;
	
};

  
CMyClass::CMyClass(int ii)
{
	i=ii;
}

int main(void)
{
    CMyClass cm(5);
    CMyClass ck(); // предупреждение
    return 0;

}

Visual Basic.Net

Module Module1
    
        
    Class CMyClass
        Private Overloads Sub New()
            
        End Sub
        Public Overloads Sub New(ByRef ii As Integer)
            i = ii
        End Sub
        
        
        
        Public i As Integer
    End Class
    
    Sub Main()
        
        rem Dim ck As New CMyClass()
        Dim cm As New CMyClass(3)
    End Sub
    
End Module

CSharp

namespace ConsoleApplication2
{
    using System;

	 class CMyClass
	{
		private CMyClass()
		{
	
		}
		public CMyClass(int ii)
		{
			i=ii;
		}
		
		 public int i=1;
   	}

	
    	
    public class Class1
    {
        
        public static int Main(string[] args)
        {
				CMyClass cm  = new CMyClass(5);
				//CMyClass ck  = new CMyClass();
			    
            return 0;
        }
    }
}
Hosted by uCoz